#include "btn_task.h"
#include "cbb_event.h"
#include "cbb_init.h"

#include "FreeRTOS.h"
#include "task.h"

#include "dev_input.h"
#include "myboard.h"
#include "device.h"

/**
 * @brief 测距任务运行
 */
static void 
btn_task_run(void *pvArgs){
    (void) pvArgs;

    for(;;)
    {

        // 监控按键1
        device_ioctl(dev_btn1,INPUT_CMD_MONITOR,NULL);

        // 监控按键事件
        cbb_event_monitor(event_btn1);

        // 延时
        vTaskDelay(pdMS_TO_TICKS(20));

    }
}

void btn_task_init(void){

    // 任务初始化
    static StaticTask_t stTaskTCB;
    static StackType_t  stTaskStack[configMINIMAL_STACK_SIZE];
    static TaskHandle_t stTaskHandle = NULL;
    (void) stTaskHandle;

    stTaskHandle = xTaskCreateStatic(
        btn_task_run,                   /* 任务函数 */
        "BtnTask",                          /* 名字 */
        configMINIMAL_STACK_SIZE,      /* 栈深度（字） */
        NULL,                           /* 参数 */
        tskIDLE_PRIORITY + 2,               /* 优先级 */
        stTaskStack,                   /* 静态栈数组 */
        &stTaskTCB);                 /* 静态 TCB 变量 */
}
INIT_PORT_TASK(btn_task_init);
